package cc.owoo.godpen.network.console;

/**
 * 进度值
 * Created by nimensei
 * 2022-03-31 上午 01:58
 **/
public class ProgressValue {
    private double max;// 最大值
    private double min;// 最小值
    private double now;// 当前值

    /**
     * 计算百分比值
     *
     * @return 0~1的百分比值
     */
    public double value() {
        return (now - min) / Math.max(1, max - min);
    }

    /**
     * 当前值+1并返回进度值
     *
     * @return 当前进度
     */
    public double addAndGet() {
        add();
        return value();
    }

    /**
     * 增加当前值并返回当前进度
     *
     * @param value 增加的值
     * @return 当前进度
     */
    public double addAndGet(double value) {
        add(value);
        return value();
    }

    /**
     * 当前值自增1
     */
    public void add() {
        add(1);
    }

    /**
     * 增加当前值
     *
     * @param value 增加的值
     */
    public void add(double value) {
        now += value;
    }

    /**
     * 获取最大值
     *
     * @return 最大值
     */
    public double getMax() {
        return max;
    }

    /**
     * 设置最大值
     *
     * @param max 最大值
     */
    public void setMax(double max) {
        this.max = max;
    }

    /**
     * 获取最小值
     *
     * @return 最小值
     */
    public double getMin() {
        return min;
    }

    /**
     * 设置最小值
     *
     * @param min 最小值
     */
    public void setMin(double min) {
        this.min = min;
    }

    /**
     * 获取当前值
     *
     * @return 当前值
     */
    public double getNow() {
        return now;
    }

    /**
     * 设置当前值
     *
     * @param now 当前值
     */
    public void setNow(double now) {
        this.now = now;
    }
}
